import axios from 'axios'
import store from '@/store'
import router from '@/router'
import to from 'await-to-js'

const instance = axios.create({
  baseURL: 'http://101.35.25.8:8000/',
  timeout: 3600
})

// 请求拦截器和响应拦截器
instance.interceptors.request.use((config) => {
//   // 如果有token 请求时 就携带token（header） 没有token 就不管
//   console.log(store.state.user.token)
  const token = store.state.user.token
  if (token) config.headers.Authorization = 'Bearer ' + token
  return config
})

instance.interceptors.response.use(res => res, (err) => {
  if (err.response && err.response.status === 401) {
    // 没有权限 ，token失效
    // 1.清空token
    store.commit('setToken', '')
    // 2.跳转到登录页面
    router.push('/login')
  }
  return Promise.reject(err)
})

export default ({ url, method = 'get', params, data, headers }) => {
  const promise = instance({ url, method, params, data, headers })
  return to(promise)
}
